package com.yy.util;


/**
 * 异常工具类
 *
 * @author sunzhiqiang23
 * @date 2020-07-22
 */
public class ExceptionValidUtils {
    private ExceptionValidUtils() {
    }

    /**
     * 返回一个新的异常，统一构建，方便统一处理
     *
     * @param msg 消息
     * @param t   异常信息
     * @return 返回异常
     */
    public static IllegalArgumentException be(String msg, Throwable t, Object... params) {
        return new IllegalArgumentException(format(msg, params), t);
    }

    /**
     * 重载的方法
     *
     * @param msg 消息
     * @return 返回异常
     */
    public static IllegalArgumentException be(String msg, Object... params) {
        return new IllegalArgumentException(format(msg, params));
    }

    /**
     * 重载的方法
     *
     * @param t 异常
     * @return 返回异常
     */
    public static IllegalArgumentException be(Throwable t) {
        return new IllegalArgumentException(t);
    }

    /**
     * 安全的进行字符串 format
     *
     * @param target 目标字符串
     * @param params format 参数
     * @return format 后的
     */
    public static String format(String target, Object... params) {
        String chars = "%s";
        if (target.contains(chars) && params != null && params.length != 0) {
            return String.format(target, params);
        }
        return target;
    }
}
